import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:rabbit_mobile/i18n/strings.g.dart';
import 'package:rabbit_mobile/provide/riverpod_provider.dart';
import 'package:shared_preferences/shared_preferences.dart';

class UserProfilePage extends ConsumerStatefulWidget {
  const UserProfilePage({super.key});

  @override
  _MineState createState() => _MineState();
}

class _MineState extends ConsumerState<UserProfilePage> {
  @override
  void initState() {
    super.initState();
    // _loadAndSetLocale(); // 加载本地存储的语言设置
  }

  /// 从本地存储加载语言设置并应用
  void _loadAndSetLocale() async {
    final prefs = await SharedPreferences.getInstance();
    final storedLocale = prefs.getString('locale'); // 读取存储的语言
    if (storedLocale != null) {
      LocaleSettings.setLocaleRaw(storedLocale); // 设置语言
    } else {
      LocaleSettings.useDeviceLocale(); // 如果没有存储，使用设备默认语言
    }
    setState(() {}); // 更新界面
  }

  /// 保存语言设置到本地存储
  Future<void> _saveLocaleToStorage(String locale) async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setString('locale', locale); // 保存语言到本地存储
  }

  /// 获取语言名称
  String _getLocaleDisplayName(AppLocale locale) {
    switch (locale) {
      case AppLocale.en:
        return 'English';
      case AppLocale.zhHans:
        return '中文簡體';
      case AppLocale.zhHant:
        return '中文繁體';
      case AppLocale.de:
        return 'Deutsch';
      default:
        return locale.languageTag;
    }
  }

  Locale convertAppLocaleToLocale(AppLocale appLocale) {
    switch (appLocale) {
      case AppLocale.de:
        return Locale('de', '');
      case AppLocale.en:
        return Locale('en', '');
      case AppLocale.zhHans:
        return Locale('zh', 'Hans');
      case AppLocale.zhHant:
        return Locale('zh', 'Hant');
      default:
        return Locale('en');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(t.home), // 使用当前语言的标题翻译
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // 显示欢迎信息
            Text(
              t.home, // 使用 Slang 提供的翻译
              style: TextStyle(fontSize: 24),
            ),
            const SizedBox(height: 20),
            // 多语言切换器
            DropdownButton<AppLocale>(
              value: LocaleSettings.currentLocale, // 当前选中的语言
              onChanged: (AppLocale? newLocale) async {
                if (newLocale != null) {
                  LocaleSettings.setLocale(newLocale); // 切换语言
                  await _saveLocaleToStorage(newLocale.languageTag); // 保存语言
                  // ref.read(translationProvider.notifier).changeLocale(newLocale);
                  setState(() {}); // 重新渲染界面
                }
              },
              items: AppLocale.values.map((locale) {
                return DropdownMenuItem<AppLocale>(
                  value: locale,
                  child: Text(_getLocaleDisplayName(locale)), // 显示语言名称
                );
              }).toList(),
            ),
          ],
        ),
      ),
    );
  }
}
